package com.unittec.drainage.provider.auth.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.unittec.drainage.provider.auth.entity.SysDicItem;

/**
 * @author Jason
 * @description 数据字典itemMapper
 * @date 2019/11/07
 */
public interface SysDicItemMapper extends BaseMapper<SysDicItem> {

    /**
     * 数据字典字表分页
     *
     * @param page
     * @param dictId
     * @param dicCode
     * @param selectOne
     * @return
     */
    IPage<Map<String, Object>> dicItemList(IPage<SysDicItem> page, @Param("dictId") String dictId,
        @Param("dictCode") String dicCode, @Param("selectOne") String selectOne);

    /**
     * 数据字典字表不分页
     *
     * @param dictId
     * @param dicCode
     * @param selectOne
     * @return
     */
    List<Map<String, Object>> dicItemList(@Param("dictId") String dictId, @Param("dictCode") String dicCode,
        @Param("selectOne") String selectOne);

    /**
     * 根据数据字典编码和和值获取数据字典名称
     *
     * @param dicCode
     * @param itemValue
     * @return
     */
    @Select("SELECT a.item_text FROM sys_dic_item a LEFT JOIN sys_dic b ON b.id = a.dict_id WHERE b.dic_code = #{dicCode} AND a.item_value = #{itemValue} LIMIT 1")
    String getItemTextByDicCodeAndItemValue(@Param("dicCode") String dicCode, @Param("itemValue") String itemValue);

    /**
     * 通过字典编码批量获取字典信息
     *
     * @param codes
     * @return
     */
    List<Map<String, Object>> batchGetDicItemList(@Param("codes") List<String> codes);

    /**
     * 通过字典编码获取字典信息
     *
     * @param dicCode
     * @return
     */
    List<SysDicItem> findDicItemListByDicCode(@Param("dicCode") String dicCode);
}
